Pre-screening for robotic work

ABSTRACT

A solution for pre-screening an object for further processing is provided. A pre-screening component can acquire image data of the object and process the image data to identify reference target(s) corresponding to the object, which are visible in the image data. Additionally, the pre-screening component can identify, using the reference target(s), the location of one or more components of the object. The pre-screening component can provide pre-screening data for use in further processing the object, which includes data corresponding to the set of reference targets and the location of the at least one component. A reference target can be, for example, an easily identifiable feature of the object and the component can be relevant for performing an operation on the object.

REFERENCE TO RELATED APPLICATIONS

The current application claims the benefit of co-pending U.S.Provisional Application No. 61/956,790, titled “Pre-screening stationfor robotic work,” which was filed on 17 Jun. 2013, and which is herebyincorporated by reference.

TECHNICAL FIELD

The disclosure relates generally to robotic devices, and moreparticularly, to a solution for assisting robotic devices in recognizingobjects in their environment.

BACKGROUND ART

It often is desirable to automate many operations currently performed byhumans using a robotic device. For example, the operations may berepetitive, dangerous, and/or the like. However, successful automationusing a robotic device requires that the robotic device have anunderstanding of the environment within which the robotic device istasked with performing the operations.

A railyard is an illustrative example of an environment, in which isdesirable to automate various operations generally performed by humans.For example, an individual present in the railyard will manuallyactivate a cut lever (e.g., a coupler release handle) in order toseparate two rail vehicles, manually activate a brake rod (e.g., an airsystem release lever) to bleed the brakes of a rail vehicle, and/or thelike. In terms of the basic capability, any individual capable ofphysically travelling along the tracks in the railyard and exerting therequired force will have no problem performing these relativelystraightforward operations. However, humans in these settings are quiteexpensive, costing $50/hour or more. More importantly, such operationsin an environment where the rail vehicles may be moving is quitehazardous. A single misstep can cause anything from bruises to death.Humans also tire relatively easily and cannot always keep track of allevents that may occur while performing what are, mostly, boring andrepetitive tasks.

One approach proposes an automated, stationary pin-puller for railcars,which recognizes the target pin and associated components and thenperforms a pin-pull. However, the discussion does not address variousissues associated with real world applications, including recognizingthe target in multiple confounding circumstances, movement of railvehicles at varying speeds, and/or the like. For example, a rail vehiclemoving a higher than normal rate of speed will not permit the pin to besuccessfully pulled in the short window of time between the pin andassociated hardware becoming visible to the system and the following carmoving into that space. As a result, a collision of the pin-pulling armwith the following car could result, likely severely damaging ordestroying the automated pin-puller. Furthermore, a location at whichthe pin can be pulled can vary based on the length and load on the railvehicle being separated, which can present a challenge in implementing afixed location pin-puller.

An illustrative example of a robotic device which can be used toautomate or semi-automate rail operations is shown and described in U.S.Patent Application Publication No. 2010/0076631, which is herebyincorporated by reference. As described therein, the robotic device canbe configured to operate in a railyard, and be tasked with variousoperations relating to the processing of rail vehicles on consistslocated in the railyard at particular locations. For example, therobotic device can be configured to operate autonomously orsemi-autonomously to activate a cut lever in order to separate two railvehicles, activate a brake rod to bleed the brakes of a rail vehicle,and/or the like. Successful operation by the robotic device requires anability of the robotic device to recognize individual rail vehicles,locate the cut lever and/or brake rod, and activate the cut lever orbrake rod as needed, while distinguishing the real targets from multiplefalse targets. Additionally, the robotic device generally requires anunderstanding of the attributes of the scene, such as the forces actingon the rail vehicles.

A robotic device moving alongside a track is uniquely challenged intrying to recognize small targets. Unlike human beings, who have animmense amount of evolved, dedicated biological hardware and instinctwhich are focused around understanding what they see in theirenvironment, even the best robotic devices do not actually “understand”what their cameras “see”. A robotic device must carefully analyze ascene using various heuristics and algorithms and determine whether agiven set of characteristics is present. Unfortunately, for manypotential targets, the simple target characteristics—loops, straightlines, etc.—which can be derived by a reasonable-sized computationalplatform in real time can result in many false positives.

For example, a robotic device attempting to locate a brake rod that endsin a loop may identify multiple loops in image data acquired by thecameras, including those from lettering or shadows, and can have asignificant challenge in trying to determine which of these loops is, infact, the brake rod, or whether the robotic device is even in thecorrect location to locate the brake rod. This is further exacerbatedsince a moving robotic device will be changing its angle of view inthree dimensions as it moves, may go over bumps or into dips of thelandscape, or can vibrate going over rough terrain. As a result, therobotic device can have difficulty in determining a precise location orbearing of the target.

A robotic device could be configured to implement more complex methodsto reduce or eliminate uncertainty in analyzing the environment.However, such methods require considerable computation time, which canmake real time implementation on a mobile platform, whose mobilityitself introduces considerable additional difficulty to the problem,impractical or impossible.

Some approaches seek to perform major computations in real time using astationary processing system located some reasonable distance from theoperating robotic device. Such an approach reduces a need for carryingthe computational capability onboard the robotic device, but stillrequires an extremely powerful system to perform in real-time, andintroduces an additional major challenge of bandwidth for thecommunications between the robotic device and the stationary system. Forexample, in order to produce good results, the station system shouldhave the same data available as the robotic device. In this case, all ofthe data gathered by the robotic device's vision system must betransmitted to the stationary system. For good resolution and accuracyin field conditions, reasonably high-resolution cameras must be used,and for a moving vehicle, the frame rate should be at least thirtyframes per second and perhaps higher. For a full-color camera, even withsome compression, this translates to tens of megabytes per second over awireless channel, or hundreds of megabits per second (Mbps). Commonwireless methods such as “WiFi” (802.11 standards) can barely exceed 100Mbps in current incarnations. As a result, use of such an approach incommercial settings is expensive and in many cases completelyimpractical.

SUMMARY OF THE INVENTION

Aspects of the invention provide a solution for pre-screening an objectfor further processing. A pre-screening component can acquire image dataof the object and process the image data to identify reference target(s)corresponding to the object, which are visible in the image data.Additionally, the pre-screening component can identify, using thereference target(s), the location of one or more components of theobject. The pre-screening component can provide pre-screening data foruse in further processing the object, which includes data correspondingto the set of reference targets and the location of the at least onecomponent. A reference target can be, for example, an easilyidentifiable feature of the object and the component can be relevant forperforming an operation on the object.

A first aspect of the invention provides a system comprising: a roboticdevice configured to perform an operation on a vehicle in an autonomousor semi-autonomous manner at a operation location; and a pre-screeningcomponent including: a set of cameras for acquiring image data of avehicle moving past a pre-screening location prior to moving into theoperation location; and a computer system for pre-screening the vehicleby performing the following: processing the image data to identify a setof reference targets corresponding to the vehicle visible in the imagedata; identifying, using the set of reference targets, a location of atleast one component of the vehicle relevant to the operation to beperformed on the vehicle by the robotic device; and providingpre-screening data for use by the robotic device in performing theoperation, wherein the pre-screening data includes data corresponding tothe set of reference targets and the location of the at least onecomponent.

A second aspect of the invention provides a system comprising: apre-screening component including: a set of cameras for acquiring imagedata of an object; and a computer system for pre-screening the object byperforming the following: processing the image data to identify a set ofreference targets corresponding to the object visible in the image data;identifying, using the set of reference targets, a location of at leastone component of the object; and providing pre-screening data for use infurther processing the object, wherein the pre-screening data includesdata corresponding to the set of reference targets and the location ofthe at least one component.

A third aspect of the invention provides a railyard comprising: arobotic device configured to perform an operation on rail vehicles in anautonomous or semi-autonomous manner at a operation location; and apre-screening component including: a set of cameras for acquiring imagedata of each rail vehicle moving past a pre-screening location prior tomoving into the operation location; and a computer system forpre-screening the rail vehicle by performing the following: processingthe image data to identify a set of reference targets corresponding tothe rail vehicle visible in the image data, wherein each referencetarget in the set of reference targets comprises an easily recognizedfeature of the rail vehicles; identifying, using the set of referencetargets, a location of at least one component of the rail vehiclerelevant to the operation to be performed on the rail vehicle by therobotic device; and providing pre-screening data for use by the roboticdevice in performing the operation, wherein the pre-screening dataincludes data corresponding to the set of reference targets and thelocation of the at least one component.

Other aspects of the invention provide methods, systems, programproducts, and methods of using and generating each, which include and/orimplement some or all of the actions described herein. The illustrativeaspects of the invention are designed to solve one or more of theproblems herein described and/or one or more other problems notdiscussed.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features of the disclosure will be more readilyunderstood from the following detailed description of the variousaspects of the invention taken in conjunction with the accompanyingdrawings that depict various aspects of the invention.

FIG. 1 shows an illustrative environment for processing rail vehiclesaccording to an embodiment.

FIG. 2 shows a block diagram of an illustrative implementation of theenvironment for processing rail vehicles shown in FIG. 1 according to anembodiment.

FIG. 3 shows a top view of an illustrative implementation of apre-screening component according to an embodiment.

FIG. 4 shows an illustrative assembly, which can be implemented as partof a pre-screening component, according to an embodiment.

FIG. 5 shows a simulation of three connected rail vehicles, which can beanalyzed to determine the respective separation locations according toan embodiment.

FIGS. 6A and 6B show an illustrative spring box of a rail vehicle andprincipals for identifying the spring box in image data according to anembodiment.

FIG. 7 shows a simulated image illustrating blocking of regions of theimage data according to an embodiment.

FIG. 8 shows an illustrative flow chart illustrating generation of anequipment definition file according to an embodiment.

FIG. 9 shows an illustrative structure of an equipment definition fileaccording to an embodiment.

It is noted that the drawings may not be to scale. The drawings areintended to depict only typical aspects of the invention, and thereforeshould not be considered as limiting the scope of the invention. In thedrawings, like numbering represents like elements between the drawings.

DETAILED DESCRIPTION OF THE INVENTION

As indicated above, aspects of the invention provide a solution forpre-screening an object for further processing. A pre-screeningcomponent can acquire image data of the object and process the imagedata to identify reference target(s) corresponding to the object, whichare visible in the image data. Additionally, the pre-screening componentcan identify, using the reference target(s), the location of one or morecomponents of the object. The pre-screening component can providepre-screening data for use in further processing the object, whichincludes data corresponding to the set of reference targets and thelocation of the at least one component. A reference target can be, forexample, an easily identifiable feature of the object and the componentcan be relevant for performing an operation on the object. As usedherein, unless otherwise noted, the term “set” means one or more (i.e.,at least one) and the phrase “any solution” means any now known or laterdeveloped solution.

Aspects of the invention provide a solution for processing variousobjects, such as vehicles moving through a given region. The processingcan include performing one or more operations on an object using arobotic device. A pre-screening component can first obtain informationon the object and provide such information for use by the roboticdevice. In an embodiment, the information includes data to assist therobotic device in identifying one or more relevant components of theobject in image data acquired for the object in order to perform theoperation(s). The solution also can acquire other data on the object,e.g., from previous processing of the object, an industry databaseregarding the object, and/or the like, which can also be provided foruse by the pre-screening component and/or robotic device. Furthermore,the solution can provide a solution for effectively storing and/orcommunicating the information regarding the object, tracking changes inthe object over time, detecting anomalies present in an object,predicting future conditions of the object, and/or the like.

Further aspects of the invention are shown and described in conjunctionwith an illustrative railyard application. In particular, the railyardincludes a pre-screening component configured to acquire data regardingall passing rail vehicles, examine the data, and determine various dataregarding each passing rail vehicle. The pre-screening component canprovide the data for use in further processing the rail vehicle in therailyard. For example, as trains arrive at a railyard, the rail vehiclesare separated and sorted into consists, which are subsequently assembledinto new trains and leave the railyard. To allow such operations, manyrepetitive tasks are performed on the rail vehicles. An illustrativeoperation is bleeding the brakes of a rail vehicle. In this operation, abrake rod is operated, generally twice to assure a fully successfulbleed, to cause a release of compressed air.

To perform such an operation using a robotic device, the device must beable to locate a brake rod, which is generally a simple rod of metalthat may or may not have a loop at the end, and pull the brake rod,ideally at least twice, with sufficient force to release the compressedair. A significant challenge for a robotic device attempting toautonomously perform this action is developing an understanding of theentire field (e.g., the gap region between two adjacent rail vehicles)within a timeframe that provides sufficient time for the robotic deviceto complete the operation. Such a challenge is compounded when therobotic device is a mobile device, which may need to analyze image dataacquired by a moving, vibrating platform traveling on uneven terrain. Inan embodiment, the pre-screening component provides data regarding aspecific type of rail vehicle, a location of an easily recognized targetwhich can serve as a reference target for a local coordinate origin,locations and/or descriptions of components relevant to the operationsof interest, and/or the like, for use by the robotic device inperforming the operation(s), such as bleeding the brakes.

Turning to the drawings, FIG. 1 shows an illustrative environment 10 forprocessing rail vehicles 2A-2C according to an embodiment. For example,the environment 10 can correspond to an entrance track 4 to a railyard.The environment 10 includes a system for processing the rail vehicles2A-2C, which can include a pre-screening component 12 including one ormore components positioned near the track 4, a robotic device 14, and aremote system 16. During operation, the pre-screening component 12 canacquire raw data corresponding to the passing rail vehicles 2A-2C,process the raw data to generate rail vehicle data corresponding to eachpassing rail vehicle 2A-2C, and communicate some or all of the railvehicle data and/or raw data for further processing by the roboticdevice 14, the remote system 16, and/or the like. The remote system 16can include a transmission link (e.g., via more powerful transmitters)to another industry system, such as a railroad system 18, with which itcan communicate data regarding the rail vehicles 2A-2C. While not shownfor clarity, it is understood that the robotic device 14 and remotesystem 16 also can communicate directly. It is understood thattransmissions between the pre-screening component 12, robotic device 14,the remote system 16, and/or the railroad system 18 can utilize anycombination of various types of wired or wireless transmissionsolutions.

The pre-screening component 12 and the robotic device 14 can be spacedsufficiently apart to allow pre-screening data derived from raw dataacquired by the pre-screening component 12 to be transmitted to andutilized by the robotic device 14 as it performs one or more operations.Such spacing will be dependent on the speed at which the rail vehicles2A-2C are moving, an amount of time required to generate and transmitthe pre-screening data, an amount of time required for the roboticdevice 14 to prepare to utilize the pre-screening data, and/or the like.To this extent, the spacing shown in FIG. 1 is only illustrative and isnot intended to depict actual spacing in various applications. Whileshown located in a nearby bungalow, it is understood that the remotesystem 16 can be located any distance from the pre-screening component12 and the robotic device 14.

FIG. 2 shows a block diagram of an illustrative implementation of theenvironment 10 for processing rail vehicles 2A-2C (FIG. 1) according toan embodiment. In this case, the environment 10 includes a pre-screeningcomponent 12, which includes a computer system 30 that can perform aprocess described herein in order to provide pre-screening data 44regarding the rail vehicles 2A-2C for use by a robotic device 14, aremote system 16, a railroad system 18, and/or the like. In particular,the computer system 30 is shown including a pre-screening program 40,which makes the computer system 30 operable to pre-process the railvehicles 2A-2C by performing a process described herein.

The computer system 30 is shown including a processing component 32(e.g., one or more processors), a storage component 34 (e.g., a storagehierarchy), an input/output (I/O) component 36 (e.g., one or more I/Ointerfaces and/or devices), and a communications pathway 38. In general,the processing component 32 executes program code, such as thepre-screening program 40, which is at least partially fixed in storagecomponent 34. While executing program code, the processing component 32can process data, which can result in reading and/or writing transformeddata from/to the storage component 34 and/or the I/O component 36 forfurther processing. The pathway 38 provides a communications linkbetween each of the components in the computer system 30. The I/Ocomponent 36 can comprise one or more human I/O devices, which enable ahuman user to interact with the computer system 30 and/or one or morecommunications devices to enable a system user (e.g., the robotic device14) to communicate with the computer system 30 using any type ofcommunications link. To this extent, the pre-screening program 40 canmanage a set of interfaces (e.g., graphical user interface(s),application program interface, and/or the like) that enable human and/orsystem users to interact with the pre-screening program 40. Furthermore,the pre-screening program 40 can manage (e.g., store, retrieve, create,manipulate, organize, present, etc.) the data, such as the pre-screeningdata 44, using any solution.

In any event, the computer system 30 can comprise one or more generalpurpose computing articles of manufacture (e.g., computing devices)capable of executing program code, such as the pre-screening program 40,installed thereon. As used herein, it is understood that “program code”means any collection of instructions, in any language, code or notation,that cause a computing device having an information processingcapability to perform a particular action either directly or after anycombination of the following: (a) conversion to another language, codeor notation; (b) reproduction in a different material form; and/or (c)decompression. To this extent, the pre-screening program 40 can beembodied as any combination of system software and/or applicationsoftware.

Furthermore, the pre-screening program 40 can be implemented using a setof modules 42. In this case, a module 42 can enable the computer system30 to perform a set of tasks used by the pre-screening program 40, andcan be separately developed and/or implemented apart from other portionsof the pre-screening program 40. As used herein, the term “component”means any configuration of hardware, with or without software, whichimplements the functionality described in conjunction therewith usingany solution, while the term “module” means program code that enables acomputer system 30 to implement the actions described in conjunctiontherewith using any solution. When fixed in a storage component 34 of acomputer system 30 that includes a processing component 32, a module 42is a substantial portion of a component that implements the actions.Regardless, it is understood that two or more components, modules,and/or systems may share some/all of their respective hardware and/orsoftware. Furthermore, it is understood that some of the functionalitydiscussed herein may not be implemented or additional functionality maybe included as part of the computer system 30.

When the computer system 30 comprises multiple computing devices, eachcomputing device can have only a portion of the pre-screening program 40fixed thereon (e.g., one or more modules 42). However, it is understoodthat the computer system 30 and the pre-screening program 40 are onlyrepresentative of various possible equivalent computer systems that mayperform a process described herein. To this extent, in otherembodiments, the functionality provided by the computer system 30 andthe pre-screening program 40 can be at least partially implemented byone or more computing devices that include any combination of generaland/or specific purpose hardware with or without program code. In eachembodiment, the hardware and program code, if included, can be createdusing standard engineering and programming techniques, respectively.

Regardless, when the computer system 30 includes multiple computingdevices, the computing devices can communicate over any type ofcommunications link. Furthermore, while performing a process describedherein, the computer system 30 can communicate with one or more othercomputer systems using any type of communications link. In either case,the communications link can comprise any combination of various types ofoptical fiber, wired, and/or wireless links; comprise any combination ofone or more types of networks; and/or utilize any combination of varioustypes of transmission techniques and protocols.

As described herein, the pre-screening component 12 includes a set ofI/O devices 50, which can be operated by the computer system 30 toacquire pre-screening data 44 corresponding to passing rail vehicles2A-2C. To this extent, the pre-screening component 12 can include a setof cameras 52, which are configured to acquire image data on the passingrail vehicles 2A-2C, which the computer system 30 can process to locatea set of reference targets and a set of components corresponding to arail vehicle 2A-2C. Data corresponding to the set of reference targetsand set of components can be provided for use by the robotic device 14.

Referring to FIGS. 1 and 2, as illustrated, the pre-screening component12 can include one or more assemblies 20 (shown in FIG. 1) positioned ata fixed location near the track 4 using any temporary or permanentplacement solution. A distance between the assembly 20 and the track 4can be selected using any solution. In an embodiment, the distance isdetermined based on the requirements of the railroad (e.g., a minimumclearance from the track 4) and a particular imaging geometry selectedfor the application. Regardless, an assembly 20 can include a set ofcameras 52 (labeled in FIG. 2), which are positioned on the assembly 20in a manner that ensures that a target region of the passing railvehicles 2A-2C is within the field of view of at least one of the set ofcameras. This can be accomplished using multiple cameras 52 withoverlapping fields of view 53A, 53B (shown in FIG. 1) at the targetdistance (e.g., a center of the track 4), a single camera (e.g., a highresolution camera) with a field of view at the target distance that issignificantly larger than the target region, which is centrally locatedin the field of view, and/or the like.

The pre-screening component 12 can be configured to acquire and/ordetermine any combination of various pre-screening data 44 regardingeach rail vehicle 2A-2C. For example, the pre-screening component 12 canobtain identification information for a rail vehicle 2A-2C. Suchidentification information can include: a position of the rail vehicle2A-2C in a consist/train; a type of the rail vehicle 2A-2C (e.g., asdetermined from image processing); identification numbers read (e.g.,imaged and processed) from a side of the rail vehicle 2A-2C; radiofrequency identification (RFID) information corresponding to the railvehicle 2A-2C transmitted by a tag, such as an automatic equipmentidentifier (AEI) tag, on the rail vehicle 2A-2C; and/or the like.

Furthermore, the pre-screening component 12 can evaluate the image datacorresponding to the target region and identify a set of referencetargets corresponding to a rail vehicle 2A-2C, which are visible in theimage data. The set of reference targets can correspond to features ofthe rail vehicle 2A-2C, which can be used to locate target components(including areas) of the rail vehicle 2A-2C relevant to the operation(s)to be performed by the robotic device 14. Additionally, thepre-screening component 12 can identify a location of the targetcomponent(s) with respect to the set of reference targets.

The pre-screening component 12 can transmit the pre-screening data 44for further processing by the robotic device 14 and/or the remote system16. In an embodiment, the pre-screening data 44 includes datacorresponding to the set of reference targets and/or location data forthe component(s) of the rail vehicle 2A-2C. The pre-screening component12 can transmit the pre-screening data 44 to the robotic device 14 foruse by the robotic device 14 in performing operation(s) on the railvehicle 2A-2C. In this case, the location of the pre-screening component12 can be selected such that the robotic device 14 will receive thepre-screening data 44 with sufficient time to utilize the data as therail vehicle 2A-2C passes the location at which the robotic device 14will perform the operation(s).

The pre-screening component 12 can transmit pre-screening data 44identifying each rail vehicle 2A-2C for processing by the remote system16. For example, the remote system 16 can use the identifying data toupdate a historical record corresponding to the rail vehicle 2A-2C,obtain additional data corresponding to the rail vehicle 2A-2C from therailroad system 18, and/or the like. In an embodiment, the pre-screeningcomponent 12 can provide raw image data acquired for the rail vehicles2A-2C, which can be processed by the remote system 16. In this case, thetransmission link between the pre-screening component 12 and the remotesystem 16 will require sufficient bandwidth, and the remote system 16can be equipped with significantly more processing power to perform thecomputations. Regardless, when the remote system 16 obtains/generatesdata for use by the robotic device 14 while performing operation(s) onthe rail vehicles 2A-2C, the remote system 16 can transmit the data foruse by the robotic device 14 in a timely manner.

In an embodiment, the pre-screening component 12 includes multipleassemblies 20, each of which can be mobile or stationary. For example,the pre-screening component 12 can include a pair of assemblies 20located on opposing sides of the track 4. To this extent, FIG. 3 shows atop view of an illustrative implementation of the pre-screeningcomponent 12 according to an embodiment. In this case, the pre-screeningcomponent 12 includes two assemblies 20A, 20B located on opposing sidesof the track 4. While the assemblies 20A, 20B are shown located at thesame location along the length of the track 4, it is understood thatthis need not be the case (e.g., when the geography of the locationmakes locating the assemblies 20A, 20B at the same location on the track4 impractical). In this case, the data acquired by devices located oneach assembly 20A, 20B will need to be matched with the correspondinglocations on the rail vehicles 2A-2C using any solution, as the datawill be acquired at different times. Furthermore, it is understood thatwhile assemblies 20A, 20B are shown adjacent to the sides of a path oftravel (e.g., the track 4), an assembly can be located differently, suchas above or below the path of travel of a target object (e.g., embeddedbetween the rails, supported over a top of the rails, and/or the like).Still further, while the assemblies 20A, 20B are shown approximately thesame distance from the track 4, it is understood that the assemblies20A, 20B can be located different distances from the track 4 (e.g., whendifferent types of cameras are used, a different field of view isdesired, and/or the like).

As described herein, each assembly 20A, 20B can include a set of cameras52 (FIG. 2) configured to acquire image data (e.g., video) of railvehicles, such as the rail vehicle 2B shown in FIG. 1, traveling alongthe track 4. In an embodiment, the assemblies 20A, 20B can be configuredsuch that the fields of view of the cameras 52 located thereon aresubstantially similar, but on opposite sides of the rail vehicle 2B.Acquiring image data from both sides of the rail vehicle 2B can assistthe pre-screening component 12 in locating one or more reference targetsand/or components on the rail vehicle 2B. For example, a brake rod maybe located on either side of the rail vehicle 2B and will therefore bemore readily located in the image data acquired by a camera 52 on one ofthe assemblies 20A, 20B.

The pre-screening component 12 can be configured to acquire additionalpre-screening data 44 (FIG. 2) regarding the target object, such as arail vehicle 2B shown in FIG. 1. For example, the pre-screeningcomponent 12 can acquire timing information, which can enable thepre-screening component 12 (e.g., a computer system 30 (FIG. 2) includedtherein) to determine when image data was acquired for a rail vehicle 2Bas well as divide a consist (e.g., train) of rail vehicles 2B intoseparate rail vehicles 2B. For example, the timing information canenable the pre-screening component 12 to match a particular videosequence with a particular event (e.g., a wheel passage).

To this extent, the pre-screening component 12 is also shown includingwheel sensors 58A-58D, each of which can be located on an inside (gaugeside) of a rail of the track 4 and can comprise any type of commerciallyavailable wheel sensor. While four gauge side sensors 58A-58D are shown,it is understood that this is only illustrative. Depending onrequirements for an embodiment of a pre-screening component 12 and thetype of sensors, a pre-screening component 12 can include any number ofone or more wheel sensors 58A-58D placed in any manner to detect passingrail wheels, e.g., on either or both rails. During operation, thecomputer system 30 (FIG. 2) of the pre-screening component 12 canprocess sensing data acquired by the wheel sensors 58A-58D to determinewheel timing information, wheel speed, and/or the like, using anysolution. For example, the pairs of wheel sensors 58A and 58B and 58Cand 58D can be located a known distance apart, thereby providingsufficient information to enable the computer system 30 to approximatethe speed at which the rail vehicle 2B is traveling.

FIG. 4 shows an illustrative assembly 20, which can be implemented aspart of a pre-screening component 12 (FIG. 1), according to anembodiment. As illustrated, the assembly 20 can be configured to bepermanently or temporarily located in a fixed location. However, it isunderstood that this is only illustrative, and a mobile assembly can beutilized in an embodiment. Regardless, the assembly 20 is shownincluding a support framework, which can be configured to hold acomputer system 30 and a set of I/O devices 50 (FIG. 2). While thesupport framework is shown including a combination of attached tubularmembers, it is understood that a support framework can be constructed inany manner to provide proper alignment and sufficient stability toenable effective operation of the various devices of the pre-screeningcomponent 12 installed thereon.

The assembly 20 is shown including four cameras 52A-52D. As illustrated,the cameras 52A-52D are configured to be operated in pairs, with cameras52A, 52B providing a first pair, and cameras 52C, 52D providing a secondpair. Each pair of cameras includes a first camera 52A, 52C having ahigh field of view (e.g., such as the field of view 53A shown in FIG. 1)configured to image a high section of the passing rail vehicles, and asecond camera 52B, 52D having a low field of view (e.g., such as thefield of view 52B shown in FIG. 1) configured to image a low section ofthe passing rail vehicles. This configuration can help ensure, amongother things, that the brake rods of the passing rail vehicles areimaged by at least one of the cameras 52A-52D. In particular, a brakerod can be mounted having one of two general height categories, whichare generally defined by a lower portion of the vehicle chassis orseveral feet higher up. In an embodiment, the fields of view 53A, 53Bare configured such that one of the height categories is centrallylocated in the field of view 53A, 53B, and the fields of view 53A, 53Binclude some overlap, which can be used for verifying image registrationdata.

In an embodiment, the set of I/O devices 50 (FIG. 2) of a pre-screeningcomponent 12 (FIG. 2) can include one or more illuminators, which thecomputer system 30 can operate to ensure that sufficient lighting ispresent to acquire usable image data. For example, the assembly 20 isshown including a pair of illuminators 54A, 54B for each camera 52A. Theilluminators 54A, 54B can be of any type necessary to produce a leveland/or type of light required by the corresponding camera 52A.Illustrative illuminators 54A, 54B include standard incandescent,halogen, light emitting diode (LED) panel lighting, and/or the like.LED-based lighting can be preferred in many outdoor, long-termapplications, as it is solid-state, easily ruggedized, and can producesufficient lighting for the application described herein.

The set of I/O devices 50 also can include one or more other componentsfor acquiring additional data regarding the passing rail vehicles. Forexample, the assembly 20 is shown including a RFID reader 56, such as anAEI tag reader. The RFID reader 56 can generate a radio frequency pulseto interrogate a tag located on a passing rail vehicle. The rail vehicletag can respond to the pulse with information regarding the railvehicle. Such information can include, for example, a specific numericidentifier of the rail vehicle, a type of rail vehicle, and/or the like.Such information can be used for tracking the rail vehicle during itsoperating lifetime, determining a location of a component, such as thebrake rod, and/or the like. It is understood that the assembly 20 caninclude other devices, which are not shown for clarity. For example, inaddition to the computer system 30, a communications component, powercomponent, and/or the like, can be included on the assembly 20 (e.g.,installed in the same physical housing as the computer system 30).

As described herein, the set of I/O devices 50 also can include variousdevices, such as the wheel sensors 58A-58D shown in FIG. 3, which canprovide wheel speed measurement data for each wheel of a passing railvehicle. Using the wheel speed measurement and timing of each wheelsignal, the computer system 30 can calculate a distance between adjacentwheels passing by the pre-screening component 12. Furthermore, thecomputer system 30 can use the wheel spacing to determine a locationcorresponding to the coupling of two adjacent rail vehicles in aconsist.

For example, FIG. 5 shows a simulation of three connected rail vehicles2A-2C, which can be analyzed to determine the respective separationlocations 60A, 60B according to an embodiment. In this case, each railvehicle 2A-2C can include two wheel trucks, each of which includes twosets of wheels. As the rail vehicles 2A-2C pass by a pre-screeninglocation, the computer system 30 (FIG. 2) can calculate a series ofwheel spacings 62A-62G. As illustrated, the computer system 30 canreadily classify the wheel spacings 62A-62G into short wheel spacings,such as wheel spacings 62A-62C and 62E-62G, and long wheel spacings,such as wheel spacing 62D, since there is a significant differencebetween the longest short wheel spacing 62A-62C and 62E-62G and theshortest long wheel spacing 62D.

As illustrated in FIG. 5, the computer system 30 can assume that theshort distances will be seen between the wheels on the same wheel truckas well as the last wheel on a first rail vehicle, such as rail vehicle2A, and the first wheel on an adjacent rail vehicle, such as railvehicle 2B. Furthermore, for each separation location 60A, 60B, therewill be a sequence of three consecutive short distances, such as wheelspacings 62A-62C, which is preceded and followed by a long distance,such as spacing 62D. From this, the computer system 30 can determine theseparation location 60A, 60B as being approximately located at a centerof the second of the three consecutive short distances, e.g., a centerof the wheel spacings 62B, 62F, respectively. It is understood that thecomputer system 30 can account for the first wheel truck on the firstrail vehicle and the last wheel truck on the last rail vehicle using anysolution. Furthermore, it is understood that the computer system 30 candetermine the separation locations 60A, 60B using a combination of oneor more of any solution. For example, when the number of wheel trucksand rail wheels are known for each rail vehicle 2A, 2B, the computersystem 30 can count the rail wheels and determine the center of thewheel spacing between the last rail wheel of a first rail vehicle 2A,and the first rail wheel of a next rail vehicle 2B.

Regardless, using the separation locations 60A, 60B, the computer system30 can segment the image data acquired by the camera(s) 52 (FIG. 2) intoentries for each individual rail vehicle 2A-2C, entries corresponding tothe gaps between connected rail vehicles 2A-2C, and/or the like.Additionally, the computer system 30 can generate a reference coordinatesystem for use by, for example, the robotic device 14 (FIG. 2). In anembodiment, the reference coordinate system is based on a set ofreference features of the object (e.g., rail vehicle 2A-2C), which canbe readily located in image data by a computer system with fewercomputational resources available and/or devoted to image processingthan that available on the computer system 30. Furthermore, particularlywhen the robotic device 14 is a mobile device, the image data may havelower consistency and/or quality due to the camera(s) being in motionand/or vibrating when the image data is acquired. In a furtherembodiment, when available, the set of reference targets can includefeatures that are generally invariant, always present, and/or the like.

For typical rail vehicles 2A-2C, the set of reference features caninclude a spring box of the rail vehicle 2A-2C, which can provide areliably accurate local coordinate system for use by a robotic device 14(FIG. 2). FIGS. 6A and 6B show an illustrative spring box 6 of a railvehicle 2 and principals for identifying the spring box 6 in image dataaccording to an embodiment. In FIG. 6A, a rail vehicle 2 includes atruck 3 including two wheels and a truck frame 5. The truck frameincludes a spring box 6, which includes a bolster with springs locatedbelow the bolster. As shown in the enlarged view, processing image data70 including the springs generally results in a series of diagonal,vertically stacked lines corresponding to the nearer, better-litportions of the curve of the springs. These patterns are generallydistinctive and generally present whenever a spring box 6 is imaged.Furthermore, truck frames 5 always include spring boxes 6.

Other objects present on a rail vehicle 2 could, upon video analysis,provide a similar pattern of lines. For example, FIG. 6B shows a numberof large spaced corrugations on the rear of a rail vehicle 2 and thecorresponding processed image data 72, which produces a pattern of linessuperficially similar to those present in the image data 70. Otherconfounding patterns could be present in various circumstances, such asa cargo of springs, graffiti having similar linear components, smallerinclined corrugations on a portion of a rail vehicle 2 or cargo visiblein a rail vehicle 2, and/or the like.

In an embodiment, the pre-screening component 12 (FIG. 2) and/or therobotic device 14 (FIG. 2) can mask areas of image data incapable ofincluding a reference target, such as the spring box 6 of a rail vehicle2, when processing the image data to identify a location of thereference target. In particular, a field of view 53A, 53B (FIG. 1) of acamera 52 (FIG. 2) will generally include one or more regions, which arenot only of no immediate interest in the image processing, but due tothe geometry of the image and reference target(s), are incapable ofincluding the reference target(s) at all. In this case, the image dataof the region(s) can be blocked off and not processed by thecorresponding computer system 30 (FIG. 2), thereby reducing anyinstances of false identification of the target feature due to similarfeatures present in the irrelevant regions.

FIG. 7 shows a simulated image 74 illustrating blocking of regions ofthe image data according to an embodiment. The image 74 could beacquired, for example, by a camera 52A located on an assembly 20 of thepre-screening component 12 as shown in FIG. 4. Regardless, the computersystem 30 (FIG. 2) can be evaluating the image data 74 to determine alocation of the springs 76 (a reference target) as described herein. Inthis case, the image data includes two rail vehicles 2A, 2B, each ofwhich includes one or more potentially confounding regions 77A, 77B. Inparticular, the region 77A includes graffiti having sufficient diagonallines that could produce a false identification of a location of thesprings 76. Similarly, the region 77B corresponds to a portion of adistant rail vehicle 2B having a corrugated side.

However, prior to evaluating the image 74 for a location of the springs76, the computer system 30 can mask regions 78A, 78B from processing. Asa result of masking region 78A, the computer system 30 will not evaluateeither of the confounding regions 77A, 77B and will therefore not needto distinguish either region 77A, 77B from the springs 76. The computersystem 30 can define the mask regions 78A, 78B using any solution. Forexample, in the image 74, the computer system 30 can define the maskregion 78B as the region below the top of the nearest rail and definethe mask region 78A as the region above a point at which the truck 3(FIG. 6) will appear in the image. For example, region 78A can bedefined as a half-space whose lowest extent above a top of the rail is astandardized distance, e.g., as defined by the freight industry, and/orthe like. As a result, the computer system 30 will only evaluate thecentral portion of the image 74, thereby eliminating many potentialsources for false detections of the springs 76.

It is understood that the masking regions 78A, 78B are only illustrativeof various masking regions that can be identified and utilized by thecomputer system 30. To this extent, a masking region can have any shape,size, and/or location in an image. The computer system 30 can identifyan appropriate masking region based on, for example, the target featureor characteristic of the target feature, its horizontal and/or verticallocation within the image data, and/or the like. To this extent, whilesprings 76 of a spring box is used as an illustrative reference target,it is understood that the computer system 30 can identify any of varioustypes of features in image data with one or more regions masked. Forexample, in identifying a location of a brake rod in image data, theregion of interest will include a higher region of the rail vehicle 2A,including at least a portion of the side of the rail vehicle 2A. Tofurther limit a region of interest, the computer system 30 can use oneor more vertical regions, such as a leading or trailing edge of the railvehicle 2A, the leading edge of a first wheel on a truck 3, the trailingedge of a second wheel on the truck 3, and/or the like.

Returning to FIG. 2, in an embodiment, the computer system 30 of thepre-screening component 12 is configured to generate an equipmentdefinition file (pre-screening data 44) corresponding to each passingrail vehicle for processing by one or more robotic devices 14 and/orremote systems 16. The equipment definition file can include, forexample, data corresponding to a location of one or more referencetargets corresponding to a rail vehicle in the image data and datacorresponding to a position of one or more target components of the railvehicle relative to the reference target(s). Furthermore, the equipmentdefinition file can include additional data regarding the rail vehicle,such as a speed of the rail vehicle, a type of the rail vehicle,identification information for the rail vehicle, and/or the like.

In a further embodiment, the pre-screening component 12 includes twoassemblies 20A, 20B located on opposing sides of the 4 as shown in FIG.3, and each assembly 20A, 20B includes cameras 52A-52D configured asshown in FIG. 4. In an illustrative embodiment, as rail vehicles passthe assemblies 20A, 20B, each camera 52A-52D on each assembly 20A, 20Bcan acquire image data (e.g., video data) of the rail vehicles. In thiscase, the computer system 30 can receive image input data from eightcameras, which can be identified as upper trailing (UT), lower trailing(LT), upper leading (UL), and lower leading (LL), for each assembly 20A,20B located on the left and right sides of the track 4. As used herein,leading image data corresponds to that data acquired by a camera 52 witha field of view facing the rail vehicle as it approaches the assembly20A, 20B and trailing image data corresponds to that image data acquiredby a camera 52 with a field of view facing the rail vehicle as it movesaway from the assembly 20A, 20B.

FIG. 8 shows an illustrative flow chart illustrating generation of anequipment definition file, which can be implemented by the computersystem 30 (FIG. 2), according to an embodiment. Referring to FIGS. 2-4,and 8, while rail vehicles are passing the pre-screening location, thecomputer system 30 can receive raw image data (video) from the variouscameras 52A-52D (UT, LT, UL, LL) on each assembly 20A, 20B.Additionally, the computer system 30 can receive additional input datafrom one or more additional I/O devices 50, such as the wheel sensors58A-58D (e.g., wheel switch timing data), the RFID tag reader 56 (e.g.,an AEI or other type of RFID), and/or the like. In actions 101L, 101R,the computer system 30 can use the input data to partition the raw imagedata by rail vehicle as described herein. In actions 102L, 102R, thecomputer system 30 can annotate the set of image data for each railvehicle with the relevant additional input data, such as the RFID,and/or the like.

Additionally, the computer system 30 can use identification data for arail vehicle, such as the RFID, to obtain additional informationregarding the rail vehicle. For example, the computer system 30 canprovide the identification data for processing by the remote system 16,which can provide prior data acquired and/or generated from previousprocessing (e.g., pre-screening, maintenance, evaluation, and/or thelike) of the rail vehicle. Similarly, the computer system 30 can provideidentification data for processing by the railroad system 18, which canuse the identification data to acquire data from an industry database,such as the Universal Machine Language Equipment Register (UMLER)database, or the like. Such data can include, for example, a type of therail vehicle, which can have a corresponding known location for one ormore components of interest, such as a brake rod. It is understood thatuse of the remote system 16 and railroad system 18 as described hereinare only illustrative and the computer system 30 can obtain prior dataand/or industry data using any solution. Use of prior data can beespecially useful in a “captive fleet” application, such as a transitrailroad where the rail vehicles repeatedly follow set routes. However,prior data also can be useful in a freight rail setting over a medium orlong term, and/or when the prior data is available from previousprocessing performed at other railyards.

In actions 103L, 103R, the computer system 30 can select a subset (e.g.,one or more) of the cameras 52A-52D for which the corresponding imagedata will be used to pre-screen the rail vehicle for a location of aparticular reference target and/or component using the data acquiredregarding the rail vehicle (e.g., type of rail vehicle, prior data,and/or the like). In an embodiment, the computer system 30 selects imagedata acquired by at least one camera 52A-52D from each side of the track4. Should no additional data be available for the rail vehicle, thecomputer system 30 can initially process the image data acquired by allof the cameras 52A-52D on each side of the track 4. The initialprocessing may quickly identify the cameras 52A-52D providing the bestimage data for identifying the location of the reference target and/orcomponent.

In actions 104L, 104R, the computer system 30 can process the selectedimage data to extract and identify target candidates for a set of targetfeatures (e.g., reference targets and/or components) in the image datacorresponding to the rail vehicle. For example, the computer system 30can process the image data using a detection chain. The detection chaincan include any combination of one or more of various image processingapproaches for detecting, extracting, and identifying target candidatesknown to those skilled in the art of machine vision and smart video.These approaches can include, for example, thresholding, backgroundremoval, Haar-based classifier, histogram of oriented gradients (HOG)classifier, optical flow analysis, and/or the like. The appropriatecombination of image processing approaches can be selected to provideeffective identification of target candidates using any solution, e.g.,based on one or more attributes of a particular object, component,and/or application (e.g., presence of various confounding features,lightening, location and movement of the sun, and/or the like).

In action 105, the computer system 30 can examine the image dataincluding at least one high-ranked target candidate, which may have beenacquired from the left and/or right sides of the track 4, forsynchronization. In particular, the computer system 30 can analyze thevideo data to determine if movement of the target candidates issynchronized with the movement of the rail vehicle. To assist thecomputer system 30 in examining the target candidate(s) forsynchronization, the computer system 30 can use data corresponding to aspeed of the rail vehicle, which can be acquired using any solution(e.g., using wheel switch data as described herein, using a separatespeed sensor, such as an ultra-low-speed Doppler radar sensor, and/orthe like).

The computer system 30 also can analyze the annotated image data toidentify other features, such as reference targets and/or components.Such analysis can be performed prior to and/or in parallel with otheranalysis described herein. For example, using a spring box as anillustrative feature, in action 110, the computer system 30 can identifya set of spring box candidates in the image data. For example, thecomputer system 30 can implement one or more image processing approachessimilar to those described in conjunction with identifying other targetcandidates. However, it is understood that a particular combinationand/or instance of an image processing solution may vary between theapplications.

In action 111, the computer system 30 can evaluate each spring boxcandidate with respect to known positional constraints of spring boxes.For example, a relevant industry can define a set of standards for thetrucks, from which various constraints can be derived, including anupper and lower bound, a truck to truck spacing, and/or the like, whichcan be used to remove false positives and/or score spring box candidatesaccording to a variance from the constraints. In response to a springbox candidate not being within the known positional constraints, thecomputer system 30 can determine that the spring box candidate is not aspring box. Additionally, in action 112, the computer system 30 candetermine how various spring box candidates group in a given region ofinterest. For example, an actual spring ensemble may include a knownnumber of springs, coils per spring, and/or the like, which can be usedto reject spring box candidates not falling within these limits and/orscore spring box candidates according to a variance from these limits.In action 113, the computer system 30 can make a final selection ofspring box(es) from an overall scoring of the spring box candidatesafter the previous evaluations. For example, a spring box candidatehaving a higher total combined score, a higher average score, and/or thelike, can be selected over a spring box candidate having a lowercomparable score.

Returning to the processing of the target candidates, using the locationdata for the identified reference target(s) (e.g., spring boxes), inaction 106, the computer system 30 can calculate a relative position ofeach target candidate that passes the synchronization analysis (e.g.,each timing-consistent target candidate) on the rail vehicle. In anembodiment, the computer system 30 can establish a coordinate system asdescribed herein (e.g., using a set of readily identifiable features)and use the coordinate system to determine the relative position of eachtiming-consistent target candidate. The computer system 30 can use therelative position to further remove target candidates. For example, atarget candidate corresponding to a brake rod will not be locatedimmediately over a spring box.

In action 107, the computer system can make a final selection of thereference targets and/or components from the set of target candidatesusing any solution. For example, the computer system 30 can use anoverall scoring of the target candidates to select the targetcandidate(s) most likely to correspond to the actual reference targetsand/or components. Furthermore, the computer system 30 can useadditional data, such as the prior data, industry (e.g., UMLR) data,and/or the like, to select an appropriate target candidate. For example,the computer system 30 can use a set of templates of a reference targetand/or component to assess a similarity of the target candidate to oneor more of the templates. Additionally, the computer system 30 can useadditional spatial a priori information, which can be obtained from theindustry data, to identify a best match between a reference targetand/or component and target candidates. When the computer system 30 isunable to distinguish between multiple target candidates for the samefeature (e.g., multiple equally scored candidates, no clear candidate,and/or the like), the computer system 30 can generate an error. In thiscase, the computer system 30 can provide data corresponding to thetarget candidates and the error for evaluation by another system and/ora user. In response, the computer system 30 can receive a selection ofthe appropriate target candidate, e.g., after a manual evaluation. Thecomputer system 30 also can store the selection and/or provide theselection for storage as prior data for the rail vehicle, which canassist the computer system 30 in identifying the corresponding featureduring future pre-screening and/or in training the computer system 30.

Once the computer system 30 has completed all of the analysis andpre-screening operations, the computer system 30 can generate andtransmit data corresponding to the results for use by one or more othersystems, such as one or more robotic devices 14, the remote system 16,and/or the railroad system 18. For example, in action 108, the computersystem 30 can generate and transmit an equipment definition fileincluding data corresponding to a rail vehicle, which includes data onthe locations of one or more components of the rail vehicle. It isunderstood that an equipment definition file can be created, modified,stored, transmitted, and/or the like, using any solution. To thisextent, while referred to herein as a file, it is understood that theequipment definition file is not limited to storage as an element of afile system.

FIG. 9 shows an illustrative structure of an equipment definition file44A according to an embodiment. The equipment definition file 44Aincludes a header 80 and a rail vehicle list 82. The header 80 caninclude, for example, data corresponding to the equipment definitionfile 44A. For example, the header 80 can include a file format version80A, a current file name 80B, identification information 80Ccorresponding to the pre-screening component 12 generating the equipmentdefinition file 44A, a time/date stamp 80D, and/or the like. It isunderstood that the header 80 is only illustrative and can includedifferent data, data in a different order, and/or the like. Furthermore,while not shown, it is understood that the equipment definition file 44Acan include a trailer, which can include data corresponding to theequipment definition file 44A, such as an error detecting code (e.g., acyclic redundancy check code), a terminator indicator, and/or the like).

The rail vehicle list 82 includes one or more rail vehicle entries 84(one shown for clarity). Each rail vehicle entry 84 can include dataregarding the rail vehicle 86 and a vehicle equipment list 88. Dataregarding the rail vehicle 86 can vary significantly based on theapplication. In an embodiment, the data regarding the rail vehicle 86includes one or more of: a vehicle initial and number; a vehicle type; anumber of axles; a length of the vehicle; and/or the like. Additionally,the data regarding the rail vehicle 86 can include information regardingthe rail vehicle, which may be useful in further processing the railvehicle. For example, one of multiple robotic devices 14 (FIG. 2) may beassigned to perform an operation based on a direction of movement and/orspeed of the rail vehicle. Illustrative information includes: directionof movement; speed; and/or the like.

The vehicle equipment list 88 can include one or more equipment entries90A, 90B, each of which corresponds to a reference target and/or acomponent of the corresponding rail vehicle. An equipment entry 90A,90B, can include any combination of various data regarding thecorresponding component. Illustrative data includes: an equipmentidentifier (e.g., an identifier used for tracking which piece ofequipment is being processed); an equipment type (e.g., a numeric oralphanumeric code used to identify the various relevant types ofequipment); a car sector, which can identify one of a plurality ofregions of a rail vehicle in which the equipment is located (e.g., leftor right side of the vehicle); a location of the equipment (e.g.,relative to a reference component, such as the spring box, in x, y, andz displacements); an orientation of the equipment (e.g., pitch, roll,yaw, and/or the like); etc. Additionally, an equipment entry 90A, 90Bcan include one or more hints for identifying the reference targetand/or component in image data. Such hints can include, for example,data corresponding to: a shape or color of the component (e.g., looped,bent at a 45 degree angle, C-shaped, and/or the like for a brake rodcomponent); a shape or color of a similar looking feature which is notthe component; and/or the like. It is understood that an equipment entry90A, 90B can include additional data, such as data corresponding to ageneral style of the equipment, a known prior condition of theequipment, and/or the like.

As described herein, the equipment definition file 44A provides aflexible and reliable approach to transmit data regarding an object,such as a rail vehicle, for use by another system, such a robotic device14 (FIG. 2), in identifying and/or acting on various features of theobject. As a result, the robotic device 14 can have a significantlyrefined operational space, thereby reducing an amount of processingcapability required to be devoted to image processing on the roboticdevice 14. In an embodiment, for each rail vehicle, the computer system30 (FIG. 2) provides the robotic device 14 with data identifying therelevant equipment of the rail vehicle, a location of the equipment,details which distinguish the equipment from other equipment, and/or thelike, using the equipment definition file 44A. This allows the roboticdevice 14 to more quickly and more reliably locate the relevantequipment on which to operate and perform the operations.

Returning to FIG. 2, when not pre-screening rail vehicles, the computersystem 30 and/or the remote system 16 can perform one or more operationsconfigured to improve one or more aspects of future pre-screening ofrail vehicles. For example, the computer system 30 and/or the remotesystem 16 can pre-load prior data and/or industry data (e.g., from therailroad system 18) regarding rail vehicles present on the next trainscheduled to enter the railyard. Furthermore, the computer system 30and/or the remote system 16 can build a knowledge base based on previouspre-screening operations, which provides overall system expectations.For example, over time, a particular type of rail vehicle may passthrough the pre-screening area many times. The computer system 30 and/orthe remote system 16 can regularly analyze and extract common featuresfor the type of rail vehicle (e.g., a location of the brake rod), whichcan be used to further refine the information initially required tolocate the feature when pre-screening a rail vehicle of thecorresponding type.

The storage and processing of long-term prior data by the computersystem 30 and/or the remote system 16 can enable further evaluationsand/or actions with respect to the rail vehicles. For example, when agiven type of rail vehicle is known to have a ladder at a particularlocation, a derived equipment list for a rail vehicle of the given typethat does not include a ladder indicates the presence of a defect in therail vehicle. When a rail vehicle has been processed multiple times(e.g., at the same pre-screening location or other pre-screeninglocation(s) for which prior data is available), the computer system 30and/or the remote system 16 can compare its status on prior passes withits current status, note changes, find defects, and analyze multipleentries to predict changes to the rail vehicle due to long-term wear.

As described herein, the processing of rail vehicles is onlyillustrative of many types of applications to which aspects of theinvention can be applied. For example, another application can bedirected to inspecting other types of motor vehicles, such as commercialtrucks, a fleet of passenger vehicles, and/or the like. In a moreparticular embodiment, aspects of the invention can be utilized at aninspection way station. For example, a pre-screening component 12 (FIG.2) can include one or more assemblies located on a roadway or approachramp prior to the inspection way station, and can evaluate anycombination of various attributes of the approaching commercialvehicles. Illustrative attributes include: registration information;brake condition; emissions; and/or the like, and can determine whetherthe commercial vehicle requires further inspection at the inspection waystation. For each vehicle selected for further inspection, thepre-screening component 12 can forward considerable data for use by theinspector (e.g., to a remote system 16 used by the inspector), with anyareas of interest flagged and specified so that the inspector canexamine only the relevant portions of the vehicle. Such an approach canreduce wait times for such inspections and/or improve safety byfacilitating more comprehensive inspections of potential problemsidentified during the pre-screening.

While shown and described herein as a method and system forpre-screening vehicles, it is understood that aspects of the inventionfurther provide various alternative embodiments. For example, in oneembodiment, the invention provides a computer program fixed in at leastone computer-readable medium, which when executed, enables a computersystem to pre-screen vehicles using a process described herein. To thisextent, the computer-readable medium includes program code, such as thepre-screening program 40 (FIG. 2), which enables a computer system toimplement some or all of a process described herein. It is understoodthat the term “computer-readable medium” comprises one or more of anytype of tangible medium of expression, now known or later developed,from which a copy of the program code can be perceived, reproduced, orotherwise communicated by a computing device. For example, thecomputer-readable medium can comprise: one or more portable storagearticles of manufacture; one or more memory/storage components of acomputing device; paper; and/or the like.

In another embodiment, the invention provides a method of providing acopy of program code, such as the pre-screening program 40 (FIG. 2),which enables a computer system to implement some or all of a processdescribed herein. In this case, a computer system can process a copy ofthe program code to generate and transmit, for reception at a second,distinct location, a set of data signals that has one or more of itscharacteristics set and/or changed in such a manner as to encode a copyof the program code in the set of data signals. Similarly, an embodimentof the invention provides a method of acquiring a copy of the programcode, which includes a computer system receiving the set of data signalsdescribed herein, and translating the set of data signals into a copy ofthe computer program fixed in at least one computer-readable medium. Ineither case, the set of data signals can be transmitted/received usingany type of communications link.

In still another embodiment, the invention provides a method ofgenerating a system for pre-screening vehicles. In this case, thegenerating can include configuring a computer system, such as thecomputer system 30 (FIG. 2), to implement a method of pre-screeningvehicles described herein. The configuring can include obtaining (e.g.,creating, maintaining, purchasing, modifying, using, making available,etc.) one or more hardware components, with or without one or moresoftware modules, and setting up the components and/or modules toimplement a process described herein. To this extent, the configuringcan include deploying one or more components to the computer system,which can comprise one or more of: (1) installing program code on acomputing device; (2) adding one or more computing and/or I/O devices tothe computer system; (3) incorporating and/or modifying the computersystem to enable it to perform a process described herein; and/or thelike.

The foregoing description of various aspects of the invention has beenpresented for purposes of illustration and description. It is notintended to be exhaustive or to limit the invention to the precise formdisclosed, and obviously, many modifications and variations arepossible. Such modifications and variations that may be apparent to anindividual in the art are included within the scope of the invention asdefined by the accompanying claims.

What is claimed is:
 1. A system comprising: a robotic device configuredto perform an operation on a vehicle in an autonomous or semi-autonomousmanner at a operation location; and a pre-screening component including:a set of cameras for acquiring image data of a vehicle moving past apre-screening location prior to moving into the operation location; anda computer system for pre-screening the vehicle by performing thefollowing: processing the image data to identify a set of referencetargets corresponding to the vehicle visible in the image data;identifying, using the set of reference targets, a location of at leastone component of the vehicle relevant to the operation to be performedon the vehicle by the robotic device; and providing pre-screening datafor use by the robotic device in performing the operation, wherein thepre-screening data includes data corresponding to the set of referencetargets and the location of the at least one component.
 2. The system ofclaim 1, wherein the computer system further identifies a vehicle typefor the vehicle using the image data, and wherein the pre-screening datafurther includes the vehicle type.
 3. The system of claim 1, wherein thepre-screening data comprises an equipment definition file for thevehicle.
 4. The system of claim 1, wherein the vehicle comprises a railvehicle.
 5. The system of claim 4, wherein the operation comprises atleast one of: a brake bleeding operation or a decoupling operation. 6.The system of claim 4, wherein the pre-screening component furtherincludes a set of wheel switches, and wherein the computer system forpre-screening the vehicle further determines at least one of: a speed ofthe rail vehicle or a separation location between adjacent rail vehiclesusing data acquired by the set of wheel switches.
 7. The system of claim1, wherein at least one of the pre-screening component or the roboticdevice is mobile.
 8. The system of claim 1, wherein the set of camerasincludes a first camera configured to acquire image data from aperspective similar to a perspective of a camera of the robotic deviceand a second camera configured to acquire image data from a perspectivesubstantially different from the perspective of the camera of therobotic device.
 9. A system comprising: a pre-screening componentincluding: a set of cameras for acquiring image data of an object; and acomputer system for pre-screening the object by performing thefollowing: processing the image data to identify a set of referencetargets corresponding to the object visible in the image data;identifying, using the set of reference targets, a location of at leastone component of the object; and providing pre-screening data for use infurther processing the object, wherein the pre-screening data includesdata corresponding to the set of reference targets and the location ofthe at least one component.
 10. The system of claim 9, wherein thecomputer system for pre-screening the object further generates anequipment definition file for the object based on the pre-screening,wherein the equipment definition file includes an entry for each of theset of reference targets and an entry for each of the at least onecomponent of the object.
 11. The system of claim 10, further comprisingmeans for evaluating the object by performing the following: evaluatinga plurality of equipment definition files for at least one of: theobject or a plurality of objects of the same type; and detecting atleast one of: a set of differences or a set of similarities in theplurality of equipment definition files.
 12. The system of claim 11,wherein the means for evaluating further includes identifying an anomalypresent in the object based on the evaluating and detecting.
 13. Thesystem of claim 9, further comprising a robotic device for performing anoperation on the object in an autonomous or semi-autonomous manner byperforming the following: acquiring image data of the object using a setof cameras located on the robotic device; processing the image datausing the pre-screening data to identify at least one component of theobject in the image data; and performing the operation on the at leastone component of the object.
 14. The system of claim 9, wherein thecomputer system for pre-screening the object further acquires at leastone of: industry data corresponding to the object or prior pre-screeningdata corresponding to the object, and includes data corresponding to theat least one of: industry data or prior pre-screening data in thepre-screening data.
 15. The system of claim 9, wherein the processingthe image data to identify a set of reference targets includes, for atleast one reference target, masking a set of areas of the image dataincapable of including the at least one reference target.
 16. A railyardcomprising: a robotic device configured to perform an operation on railvehicles in an autonomous or semi-autonomous manner at a operationlocation; and a pre-screening component including: a set of cameras foracquiring image data of each rail vehicle moving past a pre-screeninglocation prior to moving into the operation location; and a computersystem for pre-screening the rail vehicle by performing the following:processing the image data to identify a set of reference targetscorresponding to the rail vehicle visible in the image data, whereineach reference target in the set of reference targets comprises aneasily recognized feature of the rail vehicles; identifying, using theset of reference targets, a location of at least one component of therail vehicle relevant to the operation to be performed on the railvehicle by the robotic device; and providing pre-screening data for useby the robotic device in performing the operation, wherein thepre-screening data includes data corresponding to the set of referencetargets and the location of the at least one component.
 17. The railyardof claim 16, wherein the set of reference targets includes a spring boxof a truck of a rail vehicle.
 18. The railyard of claim 16, wherein theoperation comprises bleeding the brakes of the rail vehicle, and whereinthe at least one component comprises a brake rod of the rail vehicle.19. The railyard of claim 16, wherein the computer system forpre-screening the rail vehicle further includes data corresponding to aset of hints for locating the at least one component in thepre-screening data.
 20. The railyard of claim 16, wherein the computersystem for pre-screening the rail vehicle further includes datacorresponding to a type of the rail vehicle in the pre-screening data.